home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / mpega_libmad / library_init.h < prev    next >
C/C++ Source or Header  |  2004-08-03  |  4KB  |  102 lines

  1. #include "library_base.h"
  2. #include "compiler.h"
  3.  
  4. #define AQuote(string) #string                                /* Put quotes around the whole thing */
  5. #define AVersion(major,minor) AQuote(major ## . ## minor)    /* Concatenate the two version-numbers */
  6. #define AmVersion(major,minor) AVersion(major,minor)        /* We need to do it this way to elimate the blank spaces */
  7.  
  8. #define LIB_NAME    "mpega.library"
  9. #define LIB_VERSION    2
  10. #define LIB_REVISION    4
  11. #define LIB_DATE    "(17.03.04)"
  12.  
  13. #define CLONE_VERSION    1
  14. #define CLONE_REVISION    7
  15.  
  16. #ifndef LIBCPU
  17.     #if defined(BUILD_POWERUP)
  18.         #define LIBCPU " [PowerUP]"
  19.     #elif defined(BUILD_WARPUP)
  20.         #define LIBCPU " [WarpOS]"
  21.     #elif defined(BUILD_MORPHOS)
  22.         #define LIBCPU " [MorphOS]"
  23.     #elif defined(BUILD_OS4)
  24.         #define LIBCPU " [AmigaOS4]"
  25.     #else
  26.         #if defined(_M68060) || defined(mc68060)
  27.             #if defined(_M68881) || defined(__HAVE_68881__)
  28.                 #define LIBCPU " [060/FPU]"
  29.             #else
  30.                 #define LIBCPU " [060]"
  31.             #endif
  32.         #elif defined(_M68040) || defined(mc68040)
  33.             #if defined(_M68881) || defined(__HAVE_68881__)
  34.                 #define LIBCPU " [040/FPU]"
  35.             #else
  36.                 #define LIBCPU " [040]"
  37.             #endif
  38.         #elif defined(_M68030) || defined(mc68030)
  39.             #if defined(_M68881) || defined(__HAVE_68881__)
  40.                 #define LIBCPU " [030/FPU]"
  41.             #else
  42.                 #define LIBCPU " [030]"
  43.             #endif
  44.         #elif defined(_M68020) || defined(mc68020)
  45.             #if defined(_M68881) || defined(__HAVE_68881__)
  46.                 #define LIBCPU " [020/FPU]"
  47.             #else
  48.                 #define LIBCPU " [020]"
  49.             #endif
  50.         #else
  51.             #define LIBCPU
  52.         #endif
  53.     #endif
  54. #endif
  55.  
  56. #define LIB_ID LIB_NAME " " AmVersion(LIB_VERSION,LIB_REVISION) " " LIB_DATE LIBCPU " mpega.library clone v" AmVersion(CLONE_VERSION,CLONE_REVISION) " by Sigbjørn (CISC) Skjæret, using libmad 0.15.1b - Copyright (C) 2000-2004 Underbit Technologies, Inc."
  57.  
  58.  
  59. #include <libraries/mpega.h>
  60.  
  61. #ifdef __MORPHOS__
  62.  
  63. struct Library *LibInit(struct PrivateBase *PrivateBase, BPTR SegList, struct ExecBase *sysbase);
  64. struct Library *LIB_Open(void);
  65. BPTR LIB_Close(void);
  66. BPTR LIB_Expunge(void);
  67.  
  68. MPEGA_STREAM *LIB_MPEGA_open(void);
  69. void LIB_MPEGA_close(void);
  70. LONG LIB_MPEGA_decode_frame(void);
  71. LONG LIB_MPEGA_seek(void);
  72. LONG LIB_MPEGA_time(void);
  73. LONG LIB_MPEGA_find_sync(void);
  74. LONG LIB_MPEGA_scale(void);
  75.  
  76. #else
  77.  
  78. #ifdef BUILD_OS4
  79. #define __IFACE_OR_BASE        struct Interface *Self
  80. #else
  81. #define __IFACE_OR_BASE        struct PrivateBase *PrivateBase
  82. #endif
  83.  
  84. #ifdef BUILD_OS4
  85. struct Library * ASM LibInit(REG(d0, struct PrivateBase *PrivateBase), REG(a0, BPTR SegList), REG(a6, struct ExecIFace *pIExec));
  86. #else
  87. struct Library * ASM LibInit(REG(d0, struct PrivateBase *PrivateBase), REG(a0, BPTR SegList), REG(a6, struct ExecBase *sysbase));
  88. #endif
  89.  
  90. struct Library * ASM LIB_Open(REG(a6, __IFACE_OR_BASE));
  91. BPTR ASM LIB_Close(REG(a6, __IFACE_OR_BASE));
  92. BPTR ASM LIB_Expunge(REG(a6, __IFACE_OR_BASE));
  93.  
  94. MPEGA_STREAM * LIB LIB_MPEGA_open(REG(a6, __IFACE_OR_BASE), REG(a0, char *stream_name), REG(a1, MPEGA_CTRL *ctrl), REG(a4, APTR a4base));
  95. void LIB LIB_MPEGA_close(REG(a6, __IFACE_OR_BASE), REG(a0, MPEGA_STREAM *mpega_stream), REG(a4, APTR a4base));
  96. LONG LIB LIB_MPEGA_decode_frame(REG(a6, __IFACE_OR_BASE), REG(a0, MPEGA_STREAM *mpega_stream), REG(a1, WORD **pcm), REG(a4, APTR a4base));
  97. LONG LIB LIB_MPEGA_seek(REG(a6, __IFACE_OR_BASE), REG(a0, MPEGA_STREAM *mpega_stream), REG(d0, ULONG ms_time_position), REG(a4, APTR a4base));
  98. LONG LIB LIB_MPEGA_time(REG(a6, __IFACE_OR_BASE), REG(a0, MPEGA_STREAM *mpega_stream), REG(a1, ULONG *ms_time_position));
  99. LONG LIB LIB_MPEGA_find_sync(REG(a6, __IFACE_OR_BASE), REG(a0, UBYTE *buffer), REG(d0, LONG buffer_size));
  100. LONG LIB LIB_MPEGA_scale(REG(a6, __IFACE_OR_BASE), REG(a0, MPEGA_STREAM *mpega_stream), REG(d0, LONG scale_percent));
  101. #endif
  102.